/*
 * @Author: Jackie
 * @Date: 2020-11-28 15:44:36
 * @LastEditors: Jackie
 * @LastEditTime: 2020-11-28 21:28:37
 * @Description: 路由入口文件
 * @FilePath: \vue\vue_shop\src\router\index.js
 */
import Vue from 'vue'
import VueRouter from 'vue-router'
import Login from "../components/Login.vue"
import Home from "../components/Home.vue"

Vue.use(VueRouter)

const routes = [
  //重定向路由规则
  //当返回的是"http://localhost:8080/",就自动重定向到"http://localhost:8080/#/login"
  {path:"/",redirect:"/login"},
  {path:"/login",component:Login},
  {path:"/home",component:Home},
]

const router = new VueRouter({
  routes
})

//挂载路由导航守卫
router.beforeEach((to,from,next)=>{
  //to=>将要访问的路径
  //from=>从哪个路径跳转而来
  //next=>是一个函数，表示：放行
  //    next()放行
  //    next("/login")强制跳转到指定路径

  //如果用户访问登录页，直接放行
  if(to.path==="/login")return next();
  //如果用户访问其他页面
  //获取token
  const tokenStr=window.sessionStorage.getItem("token")
  //如果用户访问其他页面,但登录不成功，则强制返回登录页面
  if(!tokenStr) return next("/login")
  //如果用户访问其他页面,登录成功，则直接放行
  next()
})
export default router
